/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package controlador;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Iterator;
import java.util.Vector;
import javax.swing.JOptionPane;
import modelo.Categoria;
import modelo.Ingrediente;
import modelo.Producto;
import vista.JFrameProducto;

/**
 *
 * @author eduardo
 */
public class controladorProducto implements ActionListener {
    
    JFrameProducto jframeProducto;
    Producto producto = new Producto();
    Ingrediente ingrediente = new Ingrediente();
    Vector<Ingrediente> vectorIngrediente = new Vector<Ingrediente>();
    Categoria categoria = new Categoria();
    Vector<Categoria> vectorCategoria = new Vector<Categoria>();

    
    
    public controladorProducto (JFrameProducto jframeProducto)
    {
    this.jframeProducto = jframeProducto;
    }
    
   public void actionPerformed(ActionEvent e) {
   Object fuente = e.getSource();
   if (fuente==jframeProducto.getBtnAgregar())
      agregar();
   else if (fuente==jframeProducto.getBtnEliminar())
      eliminar();
   else if (fuente==jframeProducto.getBtnRegistrar())
      registrar();
   }
    
    void agregar()
    {
     int posicion = jframeProducto.getComboIngrediente().getSelectedIndex();
     jframeProducto.getDtm().setValueAt(vectorIngrediente.elementAt(posicion).getCodigo().toString(),jframeProducto.getIndiceTabla(), 0);
     jframeProducto.getDtm().setValueAt(vectorIngrediente.elementAt(posicion).getNombre().toString(),jframeProducto.getIndiceTabla(), 1);
     jframeProducto.setIndiceTabla(jframeProducto.getIndiceTabla() +1);
    }
    void eliminar()
    {
     if(jframeProducto.getIndiceTabla() > 0)
     {
     jframeProducto.getDtm().removeRow(jframeProducto.getTablaProducto().getSelectedRow());
     jframeProducto.setIndiceTabla(jframeProducto.getIndiceTabla()-1);
        }
    }
    void registrar()
    {
     if(!jframeProducto.getTxtCodigo().getText().equals("") && !jframeProducto.getTxtNombre().getText().equals("") &&!jframeProducto.getTxtDescripcion().getText().equals("") && !jframeProducto.getTxtPrecio().getText().equals(""))
     {
    
      Vector<Ingrediente> vectorInsertar = new Vector<Ingrediente>();
         for (int i = 0; i < jframeProducto.getIndiceTabla(); i++) {
             Ingrediente ingredienteInsertar = new Ingrediente();
             ingredienteInsertar.setCodigo(jframeProducto.getDtm().getValueAt(i, 0).toString());
//             System.out.println("el numero antes de convertir:" + jframeProducto.getDtm().getValueAt(i, 2).toString());
             try {
             float cantidadm = Float.parseFloat((String.valueOf(jframeProducto.getTablaProducto().getValueAt(i, 2)).trim()));
             System.out.println("el numero float:" + cantidadm);
             ingredienteInsertar.setCantidad(cantidadm);
             } catch (Exception e) {
             }
             vectorInsertar.add(ingredienteInsertar);
         }
       producto.insertar(jframeProducto.getTxtCodigo().getText(),jframeProducto.getTxtNombre().getText(),jframeProducto.getTxtDescripcion().getText(),vectorCategoria.elementAt(jframeProducto.getComboCategoria().getSelectedIndex()).getCodigo(),jframeProducto.getTxtPrecio().getText(),vectorInsertar);
        jframeProducto.getTxtCodigo().setText("");
        jframeProducto.getTxtNombre().setText("");
        jframeProducto.getTxtPrecio().setText("");
        jframeProducto.getTxtDescripcion().setText("");
        jframeProducto.setIndiceTabla(0);
        jframeProducto.getDtm().setRowCount(0);
        jframeProducto.getDtm().setRowCount(50);
        JOptionPane.showMessageDialog(jframeProducto, "se ha registrado el producto con exito");
     }
     else
     {
      JOptionPane.showMessageDialog(jframeProducto, "faltan datos, verifique");

     }
    }
    public void cargarCombos()
    {
    vectorCategoria   = categoria.catalogo();
    vectorIngrediente = ingrediente.catalogo();

        for (Iterator<Ingrediente> it = vectorIngrediente.iterator(); it.hasNext();) {
            Ingrediente ingredientet = it.next();
            jframeProducto.getComboIngrediente().addItem(ingredientet.getNombre());
        }

        for (Iterator<Categoria> it2 = vectorCategoria.iterator(); it2.hasNext();) {
            Categoria categoriac = it2.next();
            jframeProducto.getComboCategoria().addItem(categoriac.getNombre());
        }
    
    }

   

}
